/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2009，所有权利保留。
 * 
 * 项目名：	rumba-widget2
 * 文件名：	RMenuSeperator.java
 * 模块说明：	
 * 修改历史：
 * Jan 18, 2009 - lxm - 创建。
 */
package com.hd123.rumba.gwt.widget2.client.menu;

import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;

/**
 * 菜单分隔条
 * <p>
 * 
 * <b>CSS Style Rules<b>
 * <ol type=disc>
 * <li>.rb-PopupMenu .rb-MenuSeperator { 整个菜单项 } </li>
 * </ol>
 * 
 * @author lxm
 * 
 */
public class RMenuSeperator extends Composite implements IsRMenuItem {
  
  private static final String STYLENAME_DEFAULT = "rb-MenuSeperator";
  
  /**
   * 创建对象实例。
   */
  public RMenuSeperator() {
    super();
    drawSelf();
  }
  
  private RPopupMenu parentMenu;

  public RPopupMenu getParentMenu() {
    return parentMenu;
  }

  public void setParentMenu(RPopupMenu menu) {
    parentMenu = menu;
  }

  public Widget toWidget() {
    return this;
  }

  public boolean isOrHasChild(Element element) {
    return DOM.isOrHasChild(getElement(), element);
  }

  public boolean asSeperator() {
    return true;
  }

  public RPopupMenu getSubMenu() {
    return null;
  }

  public Widget getContextWidget() {
    return parentMenu == null ? null : parentMenu.getContextWidget();
  }

  public void onClick() {
    // Do Nothing
  }

  public void onMouseOut() {
    // Do Nothing
  }

  public void onMouseOver() {
    // Do Nothing
  }

  public void setSelectionStyle(boolean selected) {
    // Do Nothing
  }

  public boolean isEnabled() {
    return true;
  }
  
  public void setVisible(boolean visible) {
    super.setVisible(visible);
    if (parentMenu != null)
      parentMenu.onItemSetVisible(this);
  }
  
  private void drawSelf() {
    HTML html = new HTML("<div></div>");
    html.setWidth("100%");
    initWidget(html);
    setStyleName(STYLENAME_DEFAULT);
  }

}
